home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Power.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  19.2 KB  |  546 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Power.p
  3.  
  4.      Contains:    Power Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1990-1998 by Apple Computer, Inc.  All rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Power;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __POWER__}
  27. {$SETC __POWER__ := 1}
  28.  
  29. {$I+}
  30. {$SETC PowerIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __MIXEDMODE__}
  37. {$I MixedMode.p}
  38. {$ENDC}
  39.  
  40.  
  41. {$PUSH}
  42. {$ALIGN MAC68K}
  43. {$LibExport+}
  44.  
  45.  
  46. CONST
  47.                                                                 {  Bit positions for ModemByte  }
  48.     modemOnBit                    = 0;
  49.     ringWakeUpBit                = 2;
  50.     modemInstalledBit            = 3;
  51.     ringDetectBit                = 4;
  52.     modemOnHookBit                = 5;
  53.  
  54.                                                                 {  masks for ModemByte  }
  55.     modemOnMask                    = $01;
  56.     ringWakeUpMask                = $04;
  57.     modemInstalledMask            = $08;
  58.     ringDetectMask                = $10;
  59.     modemOnHookMask                = $20;
  60.  
  61.                                                                 {  bit positions for BatteryByte  }
  62.     chargerConnBit                = 0;
  63.     hiChargeBit                    = 1;
  64.     chargeOverFlowBit            = 2;
  65.     batteryDeadBit                = 3;
  66.     batteryLowBit                = 4;
  67.     connChangedBit                = 5;
  68.  
  69.                                                                 {  masks for BatteryByte  }
  70.     chargerConnMask                = $01;
  71.     hiChargeMask                = $02;
  72.     chargeOverFlowMask            = $04;
  73.     batteryDeadMask                = $08;
  74.     batteryLowMask                = $10;
  75.     connChangedMask                = $20;
  76.  
  77.                                                                 {  bit positions for SoundMixerByte  }
  78.     MediaBaySndEnBit            = 0;
  79.     PCISndEnBit                    = 1;
  80.     ZVSndEnBit                    = 2;
  81.     PCCardSndEnBit                = 3;
  82.  
  83.                                                                 {  masks for SoundMixerByte  }
  84.     MediaBaySndEnMask            = $01;
  85.     PCISndEnMask                = $02;
  86.     ZVSndEnMask                    = $04;
  87.     PCCardSndEnMask                = $08;
  88.  
  89.                                                                 {  commands to SleepQRec sleepQProc  }
  90.     sleepRequest                = 1;
  91.     sleepDemand                    = 2;
  92.     sleepWakeUp                    = 3;
  93.     sleepRevoke                    = 4;
  94.     sleepUnlock                    = 4;
  95.     sleepDeny                    = 5;
  96.     sleepNow                    = 6;
  97.     dozeDemand                    = 7;
  98.     dozeWakeUp                    = 8;
  99.     dozeRequest                    = 9;
  100.  
  101.                                                                 {  SleepQRec.sleepQFlags  }
  102.     noCalls                        = 1;
  103.     noRequest                    = 2;
  104.     slpQType                    = 16;
  105.     sleepQType                    = 16;
  106.  
  107. { bits in bitfield returned by PMFeatures }
  108.     hasWakeupTimer                = 0;                            {  1=wakeup timer is supported                                 }
  109.     hasSharedModemPort            = 1;                            {  1=modem port shared by SCC and internal modem             }
  110.     hasProcessorCycling            = 2;                            {  1=processor cycling is supported                             }
  111.     mustProcessorCycle            = 3;                            {  1=processor cycling should not be turned off                 }
  112.     hasReducedSpeed                = 4;                            {  1=processor can be started up at reduced speed             }
  113.     dynamicSpeedChange            = 5;                            {  1=processor speed can be switched dynamically             }
  114.     hasSCSIDiskMode                = 6;                            {  1=SCSI Disk Mode is supported                             }
  115.     canGetBatteryTime            = 7;                            {  1=battery time can be calculated                             }
  116.     canWakeupOnRing                = 8;                            {  1=can wakeup when the modem detects a ring                 }
  117.     hasDimmingSupport            = 9;                            {  1=has dimming support built in (DPMS standby by default)     }
  118.     hasStartupTimer                = 10;                            {  1=startup timer is supported                                 }
  119.     hasChargeNotification        = 11;                            {  1=client can determine of charge connect status change notifications available  }
  120.     hasDimSuspendSupport        = 12;                            {  1=supports dimming LCD and CRT to DPMS suspend state         }
  121.  
  122. { bits in bitfield returned by GetIntModemInfo and set by SetIntModemState }
  123.     hasInternalModem            = 0;                            {  1=internal modem installed                         }
  124.     intModemRingDetect            = 1;                            {  1=internal modem has detected a ring                 }
  125.     intModemOffHook                = 2;                            {  1=internal modem is off hook                         }
  126.     intModemRingWakeEnb            = 3;                            {  1=wakeup on ring is enabled                         }
  127.     extModemSelected            = 4;                            {  1=external modem selected                         }
  128.     modemSetBit                    = 15;                            {  1=set bit, 0=clear bit (SetIntModemState)         }
  129.  
  130. { bits in BatteryInfo.flags                                     }
  131. { ("chargerConnected" doesn't mean the charger is plugged in)    }
  132.     batteryInstalled            = 7;                            {  1=battery is currently connected                     }
  133.     batteryCharging                = 6;                            {  1=battery is being charged                         }
  134.     chargerConnected            = 5;                            {  1=charger is connected to the PowerBook             }
  135.  
  136.     HDPwrQType                    = $4844;                        {  'HD' hard disk spindown queue element type         }
  137.     PMgrStateQType                = $504D;                        {  'PM' Power Manager state queue element type         }
  138.  
  139. { client notification bits in PMgrQueueElement.pmNotifyBits }
  140.     pmSleepTimeoutChanged        = 0;
  141.     pmSleepEnableChanged        = 1;
  142.     pmHardDiskTimeoutChanged    = 2;
  143.     pmHardDiskSpindownChanged    = 3;
  144.     pmDimmingTimeoutChanged        = 4;
  145.     pmDimmingEnableChanged        = 5;
  146.     pmDiskModeAddressChanged    = 6;
  147.     pmProcessorCyclingChanged    = 7;
  148.     pmProcessorSpeedChanged        = 8;
  149.     pmWakeupTimerChanged        = 9;
  150.     pmStartupTimerChanged        = 10;
  151.     pmHardDiskPowerRemovedbyUser = 11;
  152.     pmChargeStatusChanged        = 12;
  153.     pmPowerLevelChanged            = 13;
  154.  
  155. { System Activity Selectors }
  156.     OverallAct                    = 0;                            {  general type of activity                             }
  157.     UsrActivity                    = 1;                            {  user specific type of activity                     }
  158.     NetActivity                    = 2;                            {  network specific activity                         }
  159.     HDActivity                    = 3;                            {  Hard Drive activity                                 }
  160.  
  161. { Storage Media sleep mode defines }
  162.     kMediaModeOn                = 0;                            {  Media active (Drive spinning and at full power)     }
  163.     kMediaModeStandBy            = 1;                            {  Media standby (not implemented)     }
  164.     kMediaModeSuspend            = 2;                            {  Media Idle (not implemented)     }
  165.     kMediaModeOff                = 3;                            {  Media Sleep (Drive not spinning and at min power, max recovery time)     }
  166.  
  167.     kMediaPowerCSCode            = 70;
  168.  
  169.  
  170. { definitions for HDQueueElement.hdFlags    }
  171.     kHDQueuePostBit                = 0;                            {  1 = call this routine on the second pass         }
  172.     kHDQueuePostMask            = $01;
  173.  
  174.  
  175. TYPE
  176.     ActivityInfoPtr = ^ActivityInfo;
  177.     ActivityInfo = RECORD
  178.         ActivityType:            INTEGER;                                {  Type of activity to be fetched.  Same as UpdateSystemActivity Selectors  }
  179.         ActivityTime:            UInt32;                                    {  Time of last activity (in ticks) of specified type.  }
  180.     END;
  181.  
  182. { information returned by GetScaledBatteryInfo }
  183.     BatteryInfoPtr = ^BatteryInfo;
  184.     BatteryInfo = PACKED RECORD
  185.         flags:                    UInt8;                                    {  misc flags (see below)                             }
  186.         warningLevel:            UInt8;                                    {  scaled warning level (0-255)                         }
  187.         reserved:                UInt8;                                    {  reserved for internal use                         }
  188.         batteryLevel:            UInt8;                                    {  scaled battery level (0-255)                         }
  189.     END;
  190.  
  191.     ModemByte                            = SInt8;
  192.     BatteryByte                            = SInt8;
  193.     SoundMixerByte                        = SInt8;
  194.     PMResultCode                        = LONGINT;
  195.     SleepQRecPtr = ^SleepQRec;
  196.     HDQueueElementPtr = ^HDQueueElement;
  197.     PMgrQueueElementPtr = ^PMgrQueueElement;
  198. {$IFC TYPED_FUNCTION_POINTERS}
  199.     SleepQProcPtr = FUNCTION(message: LONGINT; qRecPtr: SleepQRecPtr): LONGINT;
  200. {$ELSEC}
  201.     SleepQProcPtr = Register68kProcPtr;
  202. {$ENDC}
  203.  
  204. {$IFC TYPED_FUNCTION_POINTERS}
  205.     HDSpindownProcPtr = PROCEDURE(VAR theElement: HDQueueElement);
  206. {$ELSEC}
  207.     HDSpindownProcPtr = ProcPtr;
  208. {$ENDC}
  209.  
  210. {$IFC TYPED_FUNCTION_POINTERS}
  211.     PMgrStateChangeProcPtr = PROCEDURE(VAR theElement: PMgrQueueElement; stateBits: LONGINT);
  212. {$ELSEC}
  213.     PMgrStateChangeProcPtr = ProcPtr;
  214. {$ENDC}
  215.  
  216.     SleepQUPP = UniversalProcPtr;
  217.     HDSpindownUPP = UniversalProcPtr;
  218.     PMgrStateChangeUPP = UniversalProcPtr;
  219.     SleepQRec = RECORD
  220.         sleepQLink:                SleepQRecPtr;                            {  pointer to next queue element                 }
  221.         sleepQType:                INTEGER;                                {  queue element type (must be SleepQType)         }
  222.         sleepQProc:                SleepQUPP;                                {  pointer to sleep universal proc ptr             }
  223.         sleepQFlags:            INTEGER;                                {  flags                                         }
  224.     END;
  225.  
  226.     HDQueueElement = RECORD
  227.         hdQLink:                HDQueueElementPtr;                        {  pointer to next queue element                 }
  228.         hdQType:                INTEGER;                                {  queue element type (must be HDPwrQType)         }
  229.         hdFlags:                INTEGER;                                {  miscellaneous flags                             }
  230.         hdProc:                    HDSpindownUPP;                            {  pointer to routine to call                     }
  231.         hdUser:                    LONGINT;                                {  user-defined (variable storage, etc.)         }
  232.     END;
  233.  
  234.     PMgrQueueElement = RECORD
  235.         pmQLink:                PMgrQueueElementPtr;                    {  pointer to next queue element                 }
  236.         pmQType:                INTEGER;                                {  queue element type (must be PMgrStateQType)     }
  237.         pmFlags:                INTEGER;                                {  miscellaneous flags                             }
  238.         pmNotifyBits:            LONGINT;                                {  bitmap of which changes to be notified for     }
  239.         pmProc:                    PMgrStateChangeUPP;                        {  pointer to routine to call                     }
  240.         pmUser:                    LONGINT;                                {  user-defined (variable storage, etc.)         }
  241.     END;
  242.  
  243.  
  244.     BatteryTimeRecPtr = ^BatteryTimeRec;
  245.     BatteryTimeRec = RECORD
  246.         expectedBatteryTime:    UInt32;                                    {  estimated battery time remaining (seconds)     }
  247.         minimumBatteryTime:        UInt32;                                    {  minimum battery time remaining (seconds)         }
  248.         maximumBatteryTime:        UInt32;                                    {  maximum battery time remaining (seconds)         }
  249.         timeUntilCharged:        UInt32;                                    {  time until battery is fully charged (seconds) }
  250.     END;
  251.  
  252.  
  253.     WakeupTimePtr = ^WakeupTime;
  254.     WakeupTime = RECORD
  255.         wakeTime:                UInt32;                                    {  wakeup time (same format as current time)         }
  256.         wakeEnabled:            BOOLEAN;                                {  1=enable wakeup timer, 0=disable wakeup timer     }
  257.         filler:                    SInt8;
  258.     END;
  259.  
  260.  
  261.     StartupTimePtr = ^StartupTime;
  262.     StartupTime = RECORD
  263.         startTime:                UInt32;                                    {  startup time (same format as current time)         }
  264.         startEnabled:            BOOLEAN;                                {  1=enable startup timer, 0=disable startup timer     }
  265.         filler:                    SInt8;
  266.     END;
  267.  
  268. FUNCTION DisableWUTime: OSErr;
  269. FUNCTION SetWUTime(WUTime: LONGINT): OSErr;
  270. FUNCTION GetWUTime(VAR WUTime: LONGINT; VAR WUFlag: SignedByte): OSErr;
  271. FUNCTION BatteryStatus(VAR Status: SignedByte; VAR Power: SignedByte): OSErr;
  272. FUNCTION ModemStatus(VAR Status: SignedByte): OSErr;
  273. FUNCTION IdleUpdate: LONGINT;
  274.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  275.     INLINE $A285, $2E80;
  276.     {$ENDC}
  277. FUNCTION GetCPUSpeed: LONGINT;
  278.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  279.     INLINE $70FF, $A485, $2E80;
  280.     {$ENDC}
  281. PROCEDURE EnableIdle;
  282.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  283.     INLINE $7000, $A485;
  284.     {$ENDC}
  285. PROCEDURE DisableIdle;
  286.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  287.     INLINE $7001, $A485;
  288.     {$ENDC}
  289. PROCEDURE SleepQInstall(qRecPtr: SleepQRecPtr);
  290.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  291.     INLINE $205F, $A28A;
  292.     {$ENDC}
  293. PROCEDURE SleepQRemove(qRecPtr: SleepQRecPtr);
  294.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  295.     INLINE $205F, $A48A;
  296.     {$ENDC}
  297. PROCEDURE AOn;
  298.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  299.     INLINE $7004, $A685;
  300.     {$ENDC}
  301. PROCEDURE AOnIgnoreModem;
  302.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  303.     INLINE $7005, $A685;
  304.     {$ENDC}
  305. PROCEDURE BOn;
  306.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  307.     INLINE $7000, $A685;
  308.     {$ENDC}
  309. PROCEDURE AOff;
  310.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  311.     INLINE $7084, $A685;
  312.     {$ENDC}
  313. PROCEDURE BOff;
  314.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  315.     INLINE $7080, $A685;
  316.     {$ENDC}
  317.  
  318. { Public Power Management API (NEW!) }
  319.  
  320. FUNCTION PMSelectorCount: INTEGER;
  321.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  322.     INLINE $7000, $A09E, $3E80;
  323.     {$ENDC}
  324. FUNCTION PMFeatures: UInt32;
  325.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  326.     INLINE $7001, $A09E, $2E80;
  327.     {$ENDC}
  328. FUNCTION GetSleepTimeout: ByteParameter;
  329.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  330.     INLINE $7002, $A09E, $1E80;
  331.     {$ENDC}
  332. PROCEDURE SetSleepTimeout(timeout: ByteParameter);
  333.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  334.     INLINE $101F, $4840, $303C, $0003, $A09E;
  335.     {$ENDC}
  336. FUNCTION GetHardDiskTimeout: ByteParameter;
  337.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  338.     INLINE $7004, $A09E, $1E80;
  339.     {$ENDC}
  340. PROCEDURE SetHardDiskTimeout(timeout: ByteParameter);
  341.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  342.     INLINE $101F, $4840, $303C, $0005, $A09E;
  343.     {$ENDC}
  344. FUNCTION HardDiskPowered: BOOLEAN;
  345.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  346.     INLINE $7006, $A09E, $1E80;
  347.     {$ENDC}
  348. PROCEDURE SpinDownHardDisk;
  349.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  350.     INLINE $7007, $A09E;
  351.     {$ENDC}
  352. FUNCTION IsSpindownDisabled: BOOLEAN;
  353.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  354.     INLINE $7008, $A09E, $1E80;
  355.     {$ENDC}
  356. PROCEDURE SetSpindownDisable(setDisable: BOOLEAN);
  357.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  358.     INLINE $101F, $4840, $303C, $0009, $A09E;
  359.     {$ENDC}
  360. FUNCTION HardDiskQInstall(VAR theElement: HDQueueElement): OSErr;
  361.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  362.     INLINE $205F, $700A, $A09E, $3E80;
  363.     {$ENDC}
  364. FUNCTION HardDiskQRemove(VAR theElement: HDQueueElement): OSErr;
  365.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  366.     INLINE $205F, $700B, $A09E, $3E80;
  367.     {$ENDC}
  368. PROCEDURE GetScaledBatteryInfo(whichBattery: INTEGER; VAR theInfo: BatteryInfo);
  369.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  370.     INLINE $205F, $301F, $4840, $303C, $000C, $A09E, $2080;
  371.     {$ENDC}
  372. PROCEDURE AutoSleepControl(enableSleep: BOOLEAN);
  373.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  374.     INLINE $101F, $4840, $303C, $000D, $A09E;
  375.     {$ENDC}
  376. FUNCTION GetIntModemInfo: UInt32;
  377.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  378.     INLINE $700E, $A09E, $2E80;
  379.     {$ENDC}
  380. PROCEDURE SetIntModemState(theState: INTEGER);
  381.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  382.     INLINE $301F, $4840, $303C, $000F, $A09E;
  383.     {$ENDC}
  384. FUNCTION MaximumProcessorSpeed: INTEGER;
  385.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  386.     INLINE $7010, $A09E, $3E80;
  387.     {$ENDC}
  388. FUNCTION CurrentProcessorSpeed: INTEGER;
  389.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  390.     INLINE $7011, $A09E, $3E80;
  391.     {$ENDC}
  392. FUNCTION FullProcessorSpeed: BOOLEAN;
  393.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  394.     INLINE $7012, $A09E, $1E80;
  395.     {$ENDC}
  396. FUNCTION SetProcessorSpeed(fullSpeed: BOOLEAN): BOOLEAN;
  397.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  398.     INLINE $101F, $4840, $303C, $0013, $A09E, $1E80;
  399.     {$ENDC}
  400. FUNCTION GetSCSIDiskModeAddress: INTEGER;
  401.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  402.     INLINE $7014, $A09E, $3E80;
  403.     {$ENDC}
  404. PROCEDURE SetSCSIDiskModeAddress(scsiAddress: INTEGER);
  405.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  406.     INLINE $301F, $4840, $303C, $0015, $A09E;
  407.     {$ENDC}
  408. PROCEDURE GetWakeupTimer(VAR theTime: WakeupTime);
  409.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  410.     INLINE $205F, $7016, $A09E;
  411.     {$ENDC}
  412. PROCEDURE SetWakeupTimer(VAR theTime: WakeupTime);
  413.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  414.     INLINE $205F, $7017, $A09E;
  415.     {$ENDC}
  416. FUNCTION IsProcessorCyclingEnabled: BOOLEAN;
  417.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  418.     INLINE $7018, $A09E, $1E80;
  419.     {$ENDC}
  420. PROCEDURE EnableProcessorCycling(enable: BOOLEAN);
  421.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  422.     INLINE $101F, $4840, $303C, $0019, $A09E;
  423.     {$ENDC}
  424. FUNCTION BatteryCount: INTEGER;
  425.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  426.     INLINE $701A, $A09E, $3E80;
  427.     {$ENDC}
  428. FUNCTION GetBatteryVoltage(whichBattery: INTEGER): Fixed;
  429.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  430.     INLINE $301F, $4840, $303C, $001B, $A09E, $2E80;
  431.     {$ENDC}
  432. PROCEDURE GetBatteryTimes(whichBattery: INTEGER; VAR theTimes: BatteryTimeRec);
  433.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  434.     INLINE $205F, $301F, $4840, $303C, $001C, $A09E;
  435.     {$ENDC}
  436. FUNCTION GetDimmingTimeout: ByteParameter;
  437.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  438.     INLINE $701D, $A09E, $1E80;
  439.     {$ENDC}
  440. PROCEDURE SetDimmingTimeout(timeout: ByteParameter);
  441.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  442.     INLINE $101F, $4840, $303C, $001E, $A09E;
  443.     {$ENDC}
  444. PROCEDURE DimmingControl(enableSleep: BOOLEAN);
  445.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  446.     INLINE $101F, $4840, $303C, $001F, $A09E;
  447.     {$ENDC}
  448. FUNCTION IsDimmingControlDisabled: BOOLEAN;
  449.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  450.     INLINE $7020, $A09E, $1E80;
  451.     {$ENDC}
  452. FUNCTION IsAutoSlpControlDisabled: BOOLEAN;
  453.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  454.     INLINE $7021, $A09E, $1E80;
  455.     {$ENDC}
  456. FUNCTION PMgrStateQInstall(VAR theElement: PMgrQueueElement): OSErr;
  457.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  458.     INLINE $205F, $7022, $A09E, $3E80;
  459.     {$ENDC}
  460. FUNCTION PMgrStateQRemove(VAR theElement: PMgrQueueElement): OSErr;
  461.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  462.     INLINE $205F, $7023, $A09E, $3E80;
  463.     {$ENDC}
  464. FUNCTION UpdateSystemActivity(activity: ByteParameter): OSErr;
  465.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  466.     INLINE $101F, $4840, $303C, $0024, $A09E, $3E80;
  467.     {$ENDC}
  468. FUNCTION DelaySystemIdle: OSErr;
  469.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  470.     INLINE $7025, $A09E, $3E80;
  471.     {$ENDC}
  472. FUNCTION GetStartupTimer(VAR theTime: StartupTime): OSErr;
  473.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  474.     INLINE $205F, $7026, $A09E, $3E80;
  475.     {$ENDC}
  476. FUNCTION SetStartupTimer(VAR theTime: StartupTime): OSErr;
  477.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  478.     INLINE $205F, $7027, $A09E, $3E80;
  479.     {$ENDC}
  480. FUNCTION GetLastActivity(VAR theActivity: ActivityInfo): OSErr;
  481.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  482.     INLINE $205F, $7028, $A09E, $3E80;
  483.     {$ENDC}
  484. FUNCTION GetSoundMixerState(VAR theSoundMixerByte: SoundMixerByte): OSErr;
  485.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  486.     INLINE $205F, $7029, $A09E, $3E80;
  487.     {$ENDC}
  488. FUNCTION SetSoundMixerState(VAR theSoundMixerByte: SoundMixerByte): OSErr;
  489.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  490.     INLINE $205F, $702A, $A09E, $3E80;
  491.     {$ENDC}
  492. FUNCTION GetDimSuspendState: BOOLEAN;
  493.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  494.     INLINE $702B, $A09E, $1E80;
  495.     {$ENDC}
  496. PROCEDURE SetDimSuspendState(dimSuspendState: BOOLEAN);
  497.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  498.     INLINE $101F, $4840, $303C, $002C, $A09E;
  499.     {$ENDC}
  500.  
  501. CONST
  502.     uppSleepQProcInfo = $00131832;
  503.     uppHDSpindownProcInfo = $000000C0;
  504.     uppPMgrStateChangeProcInfo = $000003C0;
  505.  
  506. FUNCTION NewSleepQProc(userRoutine: SleepQProcPtr): SleepQUPP;
  507.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  508.     INLINE $2E9F;
  509.     {$ENDC}
  510.  
  511. FUNCTION NewHDSpindownProc(userRoutine: HDSpindownProcPtr): HDSpindownUPP;
  512.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  513.     INLINE $2E9F;
  514.     {$ENDC}
  515.  
  516. FUNCTION NewPMgrStateChangeProc(userRoutine: PMgrStateChangeProcPtr): PMgrStateChangeUPP;
  517.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  518.     INLINE $2E9F;
  519.     {$ENDC}
  520.  
  521. FUNCTION CallSleepQProc(message: LONGINT; qRecPtr: SleepQRecPtr; userRoutine: SleepQUPP): LONGINT;
  522.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  523.     {To be implemented:  Glue to move parameters into registers.}
  524.     {$ENDC}
  525.  
  526. PROCEDURE CallHDSpindownProc(VAR theElement: HDQueueElement; userRoutine: HDSpindownUPP);
  527.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  528.     INLINE $205F, $4E90;
  529.     {$ENDC}
  530.  
  531. PROCEDURE CallPMgrStateChangeProc(VAR theElement: PMgrQueueElement; stateBits: LONGINT; userRoutine: PMgrStateChangeUPP);
  532.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  533.     INLINE $205F, $4E90;
  534.     {$ENDC}
  535.  
  536. {$ALIGN RESET}
  537. {$POP}
  538.  
  539. {$SETC UsingIncludes := PowerIncludes}
  540.  
  541. {$ENDC} {__POWER__}
  542.  
  543. {$IFC NOT UsingIncludes}
  544.  END.
  545. {$ENDC}
  546.